# 对于这一组电影数据，如果我们希望统计电影分类(genre)的情况，应该如何处理数据？
# 思路：重新构造一个全为0的数组，列名为分类，如果某一条数据中分类出现过，就让0变为1


from matplotlib import pyplot as plt
import pandas as pd
import numpy as np

file_path  ='./IMDB-Movie-Data.csv'

df = pd.read_csv(file_path)

# print(df.head(1))

# print(df['Genre'].head())

#　统计分类的列表    #series这个自带的str方法挺好用的
temp_list = df['Genre'].str.split(',').tolist()
#格式： [[],[]]

# 筛选出有多少种类
# genre_list = list(set(i for j in temp_list for i in j))

# 统计每个种类出现多少次
#todo 如果只是针对genre_list,发现通过遍历的方式也是可以获取值的，只是感觉很费时间,并不浪费时间
genre_list = list(i for j in temp_list for i in j)
genre_count_dict = {}
for i in genre_list:
    if i in genre_count_dict:
        genre_count_dict[i] += 1
    else:
        genre_count_dict[i] = 1

genre_count_series = pd.Series(genre_count_dict)
genre_count_series = genre_count_series.sort_values(ascending=False)

# genre_count_series.plot()
# plt.show()
# # 画图
plt.figure(figsize=(20,8), dpi=80)
# 条形图
_x = genre_count_series.index
_y = genre_count_series.values
plt.bar(range(len(_x)),_y,width=0.4,color='orange')
plt.xticks(range(len(_x)),_x,rotation=45)
plt.show()






